using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace LS.Saving
{
    public interface ISavingGroup
    {
        string Name { get; }

        string Folder { get; }

        string Extension { get; }

        int FileCount { get; }
        
        Database Database { get; }
        
        IDataFile LoadedFile { get; }
        
        void SetupHelper(ISavingHelper helper);

        void Init();
        bool Loaded();
        bool Loaded(string fileName);
        bool HasFile(string fileName);
        IDataFile[] GetAllFile();
        IDataFile GetFile(string fileName);
        IDataFile GetRecentlyFile();
        IDataFile CreateFileInfo(string fileName);
        void LoadFile(Action<bool, string> resultAction);
        void LoadFile(IDataFile file, Action<bool, string> resultAction);
        void SaveFile(Action<bool, string> resultAction);
        void SaveFile(IDataFile file, Action<bool, string> resultAction);
        void DeleteFile();
        void DeleteFile(IDataFile file);
        void ClearLoaded();
    }
}
